package com.distributed.tcp.manager;

import com.distributed.tcp.model.ClientChannelAttrs;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;

/**
 * 未配置，可以在这块拦截设备是否有携带token，未携带直接拒绝请求
 */
public class ConnectionInitHandler extends ChannelInboundHandlerAdapter {

    @Override
    public void channelActive(ChannelHandlerContext ctx) throws Exception {
        // 1. 获取当前客户端的Channel
        Channel channel = ctx.channel();
        
        // 2. 设置基础数据（连接时间）
        channel.attr(ClientChannelAttrs.CONNECT_TIME).set(System.currentTimeMillis());
        
        // 3. 初始化认证状态（默认未认证）
        channel.attr(ClientChannelAttrs.AUTHENTICATED).set(false);
        
        // 4. 初始化复杂对象（会话信息）
        /*String sessionId = generateSessionId(channel); // 自定义生成会话ID
        ClientSession session = new ClientSession(sessionId, "unknown");
        channel.attr(ClientChannelAttrs.CLIENT_SESSION).set(session);*/
        
        System.out.println("客户端连接建立，初始化基础数据：" + channel.remoteAddress());
        super.channelActive(ctx);
    }
    
    // 简单生成会话ID的方法（实际可使用UUID）
    /*private String generateSessionId(Channel channel) {
        return UUID.randomUUID().toString();
    }*/
}